package main

import "fmt"
/*
	Pow(x, n)
实现 pow(x, n) ，即计算 x 的 n 次幂函数（即，xn）。


示例 1：
输入：x = 2.00000, n = 10
输出：1024.00000
 */

// 递归解法
// 采用分治的思想 要求x^n  先求 x^(n/2)
func myPow(x float64, n int) float64 {
	if n >= 0 {
		return helper(x, n)
	}
	return 1.0 / helper(x, -n)
}

func helper(x float64, n int) float64 {
	if n == 0 {
		return 1
	}
	y := helper(x, n / 2)
	if n % 2 == 0 {
		return y * y
	}
	return y * y * x
}


func main() {
	fmt.Println(myPow(2, 4))
}
